package com.zjq.designpatterns.struct.decorator.code.v2;/*
 * 版权信息: 北京千⾥马网信科技有限公司</br>
 * Copyright ©2008-2018. All rights reserved. 京ICP备16007318号
 */

/**
 * 都是抽象类的子类，所以让两个子类建立关系，要达到这个目的，必须要依靠父类来完成，通过组合达到关联关系
 * 让父类抽象成一个ABattercake
 * @author jessie
 * @version 1.0
 * @date 2021/1/22
 */
//没有抽象方法这个类就可以不是抽象类
    //两个实体的装饰者父类应该用抽象装饰者才会有意义
//public class AbstractDecorator extends ABattercake{
public abstract class AbstractDecorator extends ABattercake{
    private ABattercake aBattercake;

    public AbstractDecorator(ABattercake aBattercake) {
        this.aBattercake = aBattercake;
    }

    @Override
    protected String getDescription() {
        return aBattercake.getDescription();
    }

    @Override
    protected int cost() {
        return aBattercake.cost();
    }

    protected abstract void doSomething();
}
